A variety of computer systems and electronic devices use memory that is not volatile, so that stored data is not lost when power is disconnected. These nonvolatile memories can be reprogrammed, read, and erased electronically, and are well suited to storing data such as music in digital audio players, pictures in digital cameras, and configuration data in cellular telephones. Such memory includes devices commonly known as flash memory, named in part because a flash operation is used to erase the content of a block of data before it is reprogrammed, and is packaged for consumer use in products such as CompactFlash memory cards, USB flash memory drives, and other such devices.
Flash memory comprises a number of cells, each of which can store one or more binary digits (e.g., bits) of data. A typical flash memory cell comprises a field effect transistor having an electrically isolated charge storage structure such as a floating gate or charge trap that controls electrical conduction in a channel region between source and drain regions of the memory cell. Data values are represented by a charge stored on the charge storage structure, and the resulting change in conductivity observed between the source and drain regions.
When the memory cell is read by placing a specified voltage on the control gate, the electrical impedance between the source and drain of the device will either allow or not allow current to flow, depending on the presence of a charge on the charge storage structure and the effective Vt of the memory cell. The presence or absence of current above a threshold level can be sensed, and used to determine a programmed state of the memory cell, resulting in a particular data value such as a one or zero value being read.
Memory cells can be arranged in a two-dimensional array of rows and columns, where the rows are coupled via an access line, often called a word line, and the columns are coupled via a data line, often called a bit line. The access lines and data lines are used during data read and program operations to select memory cells for reading and programming.
During a programming operation, factors such as leakage can cause erased cells not intended to be programmed to change even though the memory cells are not selected for programming during the programming operation. This is sometimes referred to as a program disturb error.